/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cz.muni.fi.j002.requirementengineeringmuni;

import java.math.BigDecimal;
import java.util.List;

/**
 *
 * @author stefan
 */
public interface Player {
    
    /**
     * 1000
     */
    BigDecimal DEFAULT_INITIAL_AMOUNT = new BigDecimal(1000);
    
    /**
     * 20
     */
    BigDecimal DEFAULT_BID = new BigDecimal(20);
    
    /**
     * guest
     */
    String DEFAULT_GUEST_NAME = "guest";
    
    /**
     * 3 best games
     */
    Integer BEST_GAMES_COUNT = 3;

    /**
     * 
     * @return 
     */
    Bank getBank();

    /**
     * 
     * @return 
     */
    String getName();
    
    /**
     * 
     * @return 
     */
    BigDecimal getDefaultBid();
    
    /**
     * 
     * @param defaultBid 
     */
    void setDefaultBid(BigDecimal defaultBid);
    
    /**
     * 
     * @return 
     */
    List<Game> getBestGamesRecords();
    
    /**
     * 
     * @param game
     * @return true if a provided game becomes one of the {@link Player#BEST_GAMES_COUNT} player's best games, otherwise returns false
     */
    boolean recordAGame(Game game);
}
